package linter.linterjava.service;

import com.github.pagehelper.PageInfo;
import linter.linterjava.POJO.DO.Note;
import com.baomidou.mybatisplus.extension.service.IService;
import linter.linterjava.POJO.DTO.NoteDTO;
import linter.linterjava.POJO.UtilDTO.PageInfoDTO;
import linter.linterjava.POJO.UtilDTO.TypeDTO;

/**
* @author 北煜
* @description 针对表【note(笔记详情表)】的数据库操作Service
* @createDate 2024-07-07 12:15:51
*/
public interface NoteService extends IService<Note> {

    /**
     * @param noteDTO 笔记信息
     * @param uuid 用户id
     * @return 返回成功与否
     */
    String creatNote(NoteDTO noteDTO, Long uuid);

    /**
     * @param noteDTO 笔记信息
     * @param uuid 用户id
     * @return 返回成功与否
     */
    String updateNoteByNoteId(NoteDTO noteDTO, Long uuid);

    /**
     * @param noteId 笔记id
     * @param uuid 用户id
     * @return 返回成功与否
     */
    String deleteNoteByNoteId(Long noteId, Long uuid);

    /**
     * @param pageInfoDTO 分页类
     * @param uuid 用户id
     * @return 返回查询数据
     */
    PageInfo<Note> queryNote(PageInfoDTO pageInfoDTO, Long uuid);

    /**
     * @param uuid 用户id
     * @param pageInfoDTO 分页类
     * @return 返回查询数据
     */
    PageInfo<Note> queryAllNote(Long uuid, PageInfoDTO pageInfoDTO);

    /**
     * @param typeDTO 接收泛型
     * @param uuid 用户id
     * @return 返回查询数据
     */
    Object queryNoteByNoteAbout(TypeDTO<?> typeDTO, Long uuid);

    /**
     * @param noteId 笔记id
     * @param uuid 用户id
     * @return 返回成功与否
     */
    String viewNote(Long noteId, Long uuid);
}
